import type { EventObject, Service, Machine } from "@zag-js/core"
import type { CommonProperties, DirectionProperty, PropTypes } from "@zag-js/types"

export interface {{pascalCase machine}}Props extends DirectionProperty, CommonProperties {}

export interface {{pascalCase machine}}Schema {
  state: 'idle'
  props: {{pascalCase machine}}Props
  context: {}
  event: EventObject
  action: string
  guard: string
  effect: string
}

export type {{pascalCase machine}}Service = Service<{{pascalCase machine}}Schema>

export type {{pascalCase machine}}Machine = Machine<{{pascalCase machine}}Schema>

export interface {{pascalCase machine}}Api<T extends PropTypes = PropTypes> {
  getRootProps: () => T["element"]
}